home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / VGADOC4B.ZIP / OAK.TXT < prev    next >
Text File  |  1995-09-29  |  23KB  |  567 lines

  1.    OAK Technologies. OTI.
  2.  
  3.    OTI-O37C  100pin. has 256K or 512K.
  4.    OTI-O67   144pin  has 256K or 512K.
  5.    OTI-O77   144pin  allows 1MB and up to 1024x768 in 256 colors.
  6.    OTI-O87   160pin  allows 2MB and has BitBlt functions
  7.    OTI-O107  Also known as the "Spitfire" OTI 64107 or OTI 64105 (diff?)
  8.  
  9. OAK-037, 067 and 077:
  10.  
  11. 3DEh (R/W):  Index register                                            (37-77)
  12. bit 0-4  Index to the OAK extended registers at 3DF.
  13.     5-7  (R) Chip version.  0=OAK-037C, 2=OAK-067, 5=OAK-077, 7=OAK-057
  14. Note: Has anyone seen an 057 ????
  15.  
  16. 3DEh (R/W):  Index register                                            (83/87)
  17. bit 0-7  Index to the OAK extended registers at 3DF.
  18.  
  19. 3DEh index 00h (R):  Product Number                                    (83/87)
  20. bit   1  Set for OTI-083, Clear for OTI-087
  21.  
  22. 3DEh index 02h (R/W):  Status Register                                 (83/87)
  23. bit   0  (R) Status. 0: 286, 1: 386/486
  24.     1-2  Memory Size. 0: 256K, 1: 512K, 2: 1MB, 3: 2MB
  25.  
  26. 3DEh index 03h (R/W):  Oak Test Register                               (83/87)
  27. bit   5  ?? (Causes vertical stripes)
  28.       7  ??
  29.  
  30. 3DEh index 04h (R/W):  Local Bus Control                               (83/87)
  31. bit   2  Set if using Zero Wait States for the VESA Local BUS interface.
  32.       4
  33.  
  34. 3DEh index 05h (R/W):  Video Memory Mapping                            (83/87)
  35. bit   0  Enable Oak Address Mapping. 0: A000/B800, 1: Linear Aperture
  36.       1  DMA Address Disable. 0: Normal, 1: Disable DMA to video memory
  37.     2-3  Memory Address Aperture Select. Selects the size of the aperture
  38.            0: 256K aperture, 1: 512K, 2: 1MB, 3: 2MB
  39.     4-7  Starting Address. If bit 0 is set select the location of the linear
  40.          aperture. 0: at 0MB, 1: at 1MB ... Fh: at 15 MB.
  41.  
  42. 3DEh index 06h (R/W):  Clock Select                                    (83/87)
  43. bit 0-3  Clock select bits 0-3. Bits 0-1 are the same as 3C2h bits 2-3 and
  44.          bit 2 is the same 3DEh index 0Dh bit 5.
  45.       4  ?? (Display reset ??)
  46.  
  47. 3DEh index 07h (R):  Configuration Register 1                          (83/87)
  48. bit 1-2  Bus type. 0: VLB motherboard, 1: VESA VLB slot, 2: ISA motherboard
  49.            3: ISA 16bit slot
  50.  
  51. 3DEh index 08h (R):  Configuration Register 2                          (83/87)
  52. bit 2-3  DAC type. 0: Bt476, SC11487, IMSG174 or similar, 1: MU9c1715
  53.            2: Bt484 or similar (32bit pixelport)
  54.  
  55. 3DEh index 09h (R/W):  Scratch Register 1
  56. bit   0  Set if 24bit DAC available ?
  57.  
  58. 3DEh index 0Ah (R/W):  Scratch Register 2
  59.  
  60. 3DEh index 0Bh (R/W):  Scratch Register 3
  61. bit   6  Clear if VESA monitor timings (Jumper )
  62.       7  Clear if non-interlaced monitor timings
  63.  
  64. 3DEh index 0Ch (R/W):  CRT Control
  65. bit 0-2  (37-77) If set locks some registers ?
  66.       3  I/O write test ?
  67.       6   ?
  68.  
  69. 3DEh index 0Dh (R/W):  Oak Miscellaneous
  70. bit 2-3  (37-77) Should be set to enable access to memory above 256k
  71.           Hm, bits 0-3 may indicate the Display FIFO depth ??
  72.       4  For 16 color modes should be set to enable access for memory above
  73.          256K, should be clear in all other modes !!!
  74.       5  Clock Select bit 2. Bits 0-1 are in 3C2h/3CCh
  75.     6-7  (77) Video memory. 0: 256K, 1,3: 1MB, 2: 512K
  76.       7  (37-67) 512K if set, 256 if clear
  77.  
  78. 3DEh index 0Eh (R/W):  Backwards Compatibility
  79. bit   2  Force interlaced mode if set ???
  80.       6  If set repeats scanline 2 ad infinitum ??
  81.       7  VGA mode if set
  82.  
  83. 3DEh index 0Fh (R):  NMI Data Cache
  84.  
  85. 3DEh index 10h (R):  Dip Switch Read
  86.  
  87. 3DEh index 11h (R/W):  Segment
  88. bit 0-3  Read segment
  89.     4-7  Write segment
  90.  
  91. 3DEh index 12h (R):  Configuration
  92.  
  93. 3DEh index 13h (R/W):  Bus Control
  94.  
  95. 3DEh index 14h (R/W):  Oak Overflow
  96. bit   0  Bit 10 of the VTotal Register (3d4h index 6)
  97.       1  Bit 10 of the Vertical Display End Register (3d4h index 12h)
  98.       2  Bit 10 of the Vertical Retrace Start Register (3d4h index 10h).
  99.       3  Display Start Address bit 16. Bits 0-15 are in 3d4h index Ch,Dh
  100.       4  Cursor Location Address bit 16. Bits 0-15 are in 3d4h index Eh,Fh.
  101.       7  Set to enable Interlace display.
  102.  
  103. 3DEh index 15h (R/W):  HSYNC/2 Start
  104. bit 0-7  How far into the scanline the odd frame should start in interlaced
  105.          modes. Usually half the VTotal value.
  106.  
  107. 3DEh index 16h (R/W):  OTI Overflow Register 2                          (77 +)
  108. bit   3  Display Start Address bit 17. Bits 0-15 are in 3d4h index Ch,Dh
  109.           and bit 16 in 3DEh index 14h bit 3.
  110.       4  Cursor Location Address bit 17. Bits 0-15 are in 3d4h index Eh,Fh.
  111.  
  112. 3DEh index 17h (R/W):  Extended CRTC Register                          (83/87)
  113. bit 0-2  Display Start Address bit 16-18. Bits 0-15 are in 3d4h index Ch,Dh
  114.          Note that bit 0 of this register is also at 3DEh index 3 and bit 1 at
  115.          3DEh index 16h bit 3.
  116.  
  117. 3DEh index 18h (R/W):  EEPROM Control
  118. bit   2  Clock Select??
  119.  
  120. 3DEh index 19h (R/W):  Extended Color Palette Address
  121.  
  122. 3DEh index 20h (R/W):  FIFO Depth                                      (83/87)
  123. bit 0-3  FIFO depth. If the number of entries in the Display FIFO reaches this
  124.          level (or less) a screen data fetch will start. Low values gives
  125.          better performance, but might disturb the display.
  126.  
  127. 3DEh index 21h (R/W):  Mode Select                                     (83/87)
  128. bit 0-1  Divides the video clock by. 0: 1, 1: 2, 2: 3, 3: 3
  129.       2  Clear in mode 13h, set in all other 256color modes
  130.  
  131. 3DEh index 22h (R/W):  Feature Select                                  (83/87)
  132. bit   0  Enable contents addressable latch ?
  133.     2-3  Both set to enable bitblt ??
  134.       4  Enable 64bit CPU Latch if set
  135.       5  CPU Latch Swap. If set swaps the high and low Latch.
  136.  
  137. 3DEh index 23h (R/W):  Extended Read Segment                           (83/87)
  138. bit 0-4  Read segment in units of 64K
  139.  
  140. 3DEh index 24h (R/W):  Extended Write Segment                          (83/87)
  141. bit 0-4  Write segment in units of 64K
  142.  
  143. 3DEh index 25h (W):  Extended Common Read/Write                        (83/87)
  144. bit 0-4  Combined read/write segment. Writing to this register will set both
  145.          the Read (index 23h) and Write Segment (index 24h) registers
  146.  
  147. 3DEh index 30h (R/W):  Color Expansion Control Register                (83/87)
  148. bit   0  Enable Color Expansion if set
  149.       1  Color Expansion Mode Select. 0: Packed pixel, 1: Planar.
  150.       2  Select Pattern Register. If set the Color Pattern Register (3DEh
  151.          index 33h) is used to select foreground and background, if clear the
  152.          CPU data select foreground and background.
  153.       3  Pixel Mask Enable. If set
  154.       4  Pixel Mask Ordering. If set bit 7 corresponds to pixel 0, if clear
  155.          bit 7 corresponds to pixel 0.
  156.  
  157. 3DEh index 31h (R/W):  Foreground Color                                (83/87)
  158. bit 0-7  Foreground color for Color Expansion.
  159.  
  160. 3DEh index 32h (R/W):  Background Color                                (83/87)
  161. bit 0-7  Background color for Color Expansion.
  162.  
  163. 3DEh index 33h (R/W):  Color Pattern Register                          (83/87)
  164. bit 0-7  If Color Expansion is enabled (3DEh index 30h bit 0 is set) and 3DEh
  165.          index 30h bit 2 is set this register is used to select foreground and
  166.          background during writes.
  167.  
  168. 3DEh index 34h (R/W):  Word Mode Pixel Mask                            (83/87)
  169. bit 0-7  Pixel Mask. If Color Expansion is enabled (3DEh index 30h bit 0 is
  170.          set) and Pixel Mask is enabled (3DEh index 30h bit 3 is set) each bit
  171.          controls writing to a plane (in planar mode) or a pixel (in packed
  172.          mode).
  173.  
  174. 3DEh index 35h (R/W):  CPU Latch Index                                 (83/87)
  175. bit 0-2  Selects which of the 8 bytes in the 64bit CPU Latch can be read or
  176.          written at index 36h
  177.  
  178. 3DEh index 36h (R/W):  CPU Latch Data                                  (83/87)
  179. bit 0-7  The 64bit CPU Latch can be read or written through this register.
  180.          The CPU Latch Index Register (3DEh index 35h) selects the byte that
  181.          is accessed.
  182.  
  183. 3DEh index 40h (R/W):  HC Horizontal Start High                        (83/87)
  184.  
  185. 3DEh index 41h (R/W):  HC Horizontal Start Low                         (83/87)
  186.  
  187. 3DEh index 42h (R/W):  HC Vertical Start High                          (83/87)
  188.  
  189. 3DEh index 43h (R/W):  HC Vertical Start Low                           (83/87)
  190. The cursor is stored as a 64x64 2bits/pixel bitmap. Each line is 16 bytes,
  191. first 8 bytes (64bits) of 'A' data, then 8 bytes of 'B' data.
  192.            'A'      'B'
  193.             0        0     Transparent (screen data)
  194.             0        1     Foreground color
  195.             1        0     Inverted screen data (Pixel is inverted)
  196.             1        1     Background color
  197.  
  198. 3DEh index 44h (R/W):  HC Horizontal Preset                            (83/87)
  199. bit 0-5  Number of pixels to skip on the right side of the cursor.
  200.  
  201. 3DEh index 45h (R/W):  HC Vertical Preset                              (83/87)
  202. bit 0-5  Number of lines to skip at the bottom of the cursor.
  203.  
  204. 3DEh index 47h 3(R/W):  HC Start Address                               (83/87)
  205. bit 0-16  Address of the Hardware Cursor Map in units of 8 bytes.
  206.  
  207. 3DEh index 4Ah (R/W):  HC Foreground Color                             (83/87)
  208.  
  209. 3DEh index 4Bh (R/W):  HC Background Color                             (83/87)
  210.  
  211. 3DEh index 4Ch (R/W):  HC Control Register                             (83/87)
  212. bit   0  Enable Hardware Cursor if set
  213.       1  Display Selection. 0: Overscan, 1: Show over Overscan
  214.       2  Data Format of Cursor. 0: bit 0 first, 1: bit 7 first
  215.       3  Blink Rate Enabled if set
  216.     4-5  Blink Rate. 0: 4 frames/sec, 1: 8 f/s, 2: 16 f/s, 3: 32 f/s
  217.  
  218.  
  219.  
  220.   Oak OTI 64105/7:
  221.  
  222. 3DEh index 2 (R/W):  Status
  223. 3DEh index 3 (R/W):  OTI Test Register 1
  224. 3DEh index 4 (R/W):  OTI Test Register 2
  225. 3DEh index 6 (R/W):  Clock Select/Scratch
  226. 3DEh index 7 (R):  Configuration Register 1
  227. 3DEh index 8 (R):  Configuration Register 2
  228. bit 3-4  ROM Size. 0: 32K, 1: 64K, 2: 128K, 3: 256K
  229.  
  230. 3DEh index 9 (R):  Configuration Register 3
  231. 3DEh index 0Ch (R/W):  I2C Control
  232. 3DEh index 0Dh (R):  Dip Switch Read
  233. 3DEh index 0Eh (R/W):  EPROM Control
  234. 3DEh index 0Fh (R/W):  Power Saving
  235. 3DEh index 10h (R/W):  Local Bus Control
  236. 3DEh index 11h (R/W):  Compatible Segment
  237. 3DEh index 13h (R/W):  ISA Bus Control
  238. 3DEh index 14h (R/W):  Memory Mapping
  239. 3DEh index 15h (R/W):  Memory & I/O Map Enable
  240. bit   6  Enable Graphic Memory Response if set
  241.       7  Enable Memory Mapped I/O if set
  242.  
  243. 3DEh index 19h (R/W):  Configuration/Aux/DAC Address
  244. bit 0-3  Selects the address of the Configuration/DAC/Auxiliary registers at
  245.          2x00h-2xFFh where x is the value in this field. 2x00h-2x3Fh for (PCI)
  246.          Configuration registers, 2x80h-2x9Fh for DAC registers and 2xA0h-
  247.          2xBFh for auxiliary registers
  248.       4  Enables decoding of the DAC registers at 2x80h-2x9Fh if set
  249.       5  Enables decoding of the auxiliary registers at 2xA0h-2xBFh if set.
  250.  
  251. 3DEh index 20h (R/W):  FIFO Depth
  252. 3DEh index 21h (R/W):  Mode Select
  253. 3DEh index 22h (R/W):  Feature Select
  254. bit   5  Enable write mode 4 which bypasses the ALU and barrel shifter. Only
  255.          used for planar modes.
  256.  
  257. 3DEh index 23h (R/W):  Extended Read Segment
  258. 3DEh index 24h (R/W):  Extended Write Segment
  259. 3DEh index 25h (R/W):  Extended Common Read/Write Segment
  260. 3DEh index 26h (R/W):  RASn Control
  261. 3DEh index 27h (R/W):  CASn Control
  262. 3DEh index 28h (R/W):  Refresh Control
  263. 3DEh index 29h (R/W):  Hardware Window Arbitration
  264. 3DEh index 30h (R/W):  OTI CRT Overflow
  265. bit   3  CRT Offset bit 9. Bits 0-7 are in 3d4h index
  266.  
  267. 3DEh index 31h (R/W):  CRT Start Address High
  268. bit 0-6  Display Start Address bit 16-22. Bits 0-15 are in 3d4h index Ch,Dh
  269.  
  270. 3DEh index 32h (R/W):  HSYNC/2 Start
  271. 3DEh index 33h (R/W):  CRT Address Compatibility
  272. 3DEh index 38h (R/W):  Pixel Interface
  273. bit 0-3  Pixel Mode. Controls the routing of display data.
  274.            0:  VGA, 8bit DAC path. Routed through the attribute controller
  275.            1:  4bpp, 8bit DAC path (2 pixels per DAC operation?).
  276.            2:  8/16/24bpp, 8bit DAC path
  277.            3:  16bpp, 16bit DAC path
  278.            4:  8bpp, 16bit DAC path (2 pixels per DAC operation?).
  279.            5:  16bpp, 16bit DAC path
  280.            6:  32bpp, 16bit DAC path
  281.            7:  24bpp, 24bit DAC path
  282.            8:  32bpp, 24bit DAC path
  283.       4  Color Ordering. In 16bpp and 24bpp (also 32bpp?) modes controls the
  284.          order of the red and blue components. If set the blue part comes
  285.          first (low bits) and the red last, if clear red comes first.
  286.     5-6  Bits/pixel. 0: 8bpp, 1: 16bpp, 2: 24bpp, 3: 32bpp
  287.  
  288. 3DEh index 80h W(R/W):  HC/HW Horizontal Position Start
  289. 3DEh index 82h W(R/W):  HC/HW Vertical Position Start
  290. 3DEh index 84h (R/W):  HC Horizontal Preset/HW Width Low
  291. bit 0-5  (HC)
  292.     0-7  (HW) Low 8bits of the HW width. Upper bits are in index 85h
  293.  
  294. 3DEh index 85h (R/W):  HW Width High
  295. bit 0-?  High bits of the HW width. Low bits are in index 84h. This value is
  296.          the number of doublewords (4bytes) in each line.
  297.  
  298. 3DEh index 86h (R/W):  HC Vertical Preset Low/HW Height Low
  299. 3DEh index 87h (R/W):  HW Height High
  300. 3DEh index 88h 3(R/W):  HC Start Address
  301. 3DEh index 8Ch 4(R/W):  HC Color 0
  302. bit 0-31  Cursor color 0. Same format as the current display
  303.  
  304. 3DEh index 90h 4(R/W):  HC Color 1
  305. bit 0-31  Cursor color 1. Same format as the current display
  306.  
  307. 3DEh index 94h (R/W):  HC Control Register
  308. bit   0  Enable Hardware Cursor (HC) if set
  309.       1  HC display is over overscan if set, under if clear
  310.       2  HC Data format. Motorola if set, Intel if clear
  311.       3  HC Blink enabled if set
  312.     4-5  Blink Rate. 0: 4frames on+off, 1: 8f, 2: 16f, 3: 32f
  313.  
  314. 3DEh index 96h (R/W):  HW Control
  315. bit   0  Select Hardware Window (HW) or Hardware Cursor (HC). 0: HC, 1: HW
  316.     1-2  Horizontal Scaling Factor. 0: None, 1: /2, 2: /4, 3: /8
  317.     3-4  Vertical Scaling Factor. 0: None, 1: /2, 2: /4, 3: /8
  318.       5  Select odd/even lines for scaling. 0: even, 1: odd
  319.       6  YUV or RGB for scaling. 0: data from Multimediaport is YUV, 1: RGB
  320.       7  Enable Mask Map for Multimedia Port
  321.  
  322. 3DEh index 98h 3(R/W):  HW Mask Map Start
  323. 3DEh index 9Ch 3(R/W):  HW Start Address
  324. 3DEh index 9Fh (R/W):  HW Address Offset
  325.  
  326. 3DEh index F0h (R/W):  Scratch Register 0
  327. 3DEh index F1h (R/W):  Scratch Register 1
  328. 3DEh index F2h (R/W):  Scratch Register 2
  329. 3DEh index F3h (R/W):  Scratch Register 3
  330. 3DEh index F4h (R/W):  Scratch Register 4
  331. 3DEh index F5h (R/W):  Scratch Register 5
  332. 3DEh index F6h (R/W):  Scratch Register 6
  333. 3DEh index F7h (R/W):  Scratch Register 7
  334.  
  335. 2x00h W(R):  Vendor ID
  336. bit 0-15  104Eh for Oak
  337.  
  338. 2x02h W(R):  Device ID
  339. bit 0-15  0107h for the Oak-107
  340.  
  341. 2x04h W(R/W):  System Bus Command Register
  342. bit    0  I/O Space. If set the device is allowed to respond to I/O accesses.
  343.        1  Memory Space. If set the device is allowed to respond to memory
  344.           accesses.
  345.        3  Special Cycle. If set the device is allowed to monitor special
  346.           cycles.
  347.        5  VGA Palette Snoop. Clear for normal DAC  operation, set to enable
  348.           special DAC snoop mode where the DAC does not respond to writes.
  349.        6  Parity Error. If set the device responds to parity errors, if clear
  350.           ignores them.
  351.        7  Wait Cycle Control. If set enables address/data stepping.
  352.        8  System Error Driver. If set the Error driver reports address parity
  353.           errors, if clear it is disconnected.
  354.        9  Back to Back Cycle. If set there is no delay between bus cycles.
  355.  
  356. 2x??h W(R):  System Bus State
  357. bit    7  (R) Fast back-to-back. Fast back-to-back supported if set
  358.        8  Bus Master
  359.     9-10  (R) Device Select Timing. Timing of DEVSEL#. 0: fast, 1: medium,
  360.             2: slow
  361.       11  Device Target-abort. Set if the VGA issues a target abort
  362.       12  Received Target-abort. Set if the VGA as master receives a target
  363.           abort.
  364.       13  Master Abort Status. Set if the VGA as master issues a master abort.
  365.  
  366. 2x08h (R):  Revision ID
  367. 2x??h D():  Class Code Register
  368. bit 0-23  0 for non-VGA devices, 30000h for VGA compatible devices ??
  369.  
  370. 2x??h (R):  Programming Interface
  371. 2x??h (R/W):  Cache Line Size
  372. 2x??h (R):  Header Type
  373. 2x??h (R/W):  Built-In Self Test
  374. 2x10h D(R/W):  Memory Mapped I/O Base Address
  375. bit    0  (R) Memory or I/O. 0: Memory mapped, 1: I/O mapped
  376.      1-2  (R) Locatable area. 0: Anywhere in 32bit address space, 1: Below
  377.            1MB, 2: anywhere in 64bit address space.
  378.        3  (R) Pre-fetchable. Set if memory is cacheable, clear if not.
  379.      4-7  (R) Address space size. 0: 256 bytes
  380.     8-31  Memory-Mapped I/O Base. Upper 24bits of the base address
  381.  
  382. 2x14h D(R/W):  Graphics Memory Base Address
  383. bit    0  (R) Memory or I/O. 0: Memory mapped, 1: I/O mapped
  384.      1-2  (R) Locatable area.  0: Anywhere in 32bit address space, 1: Below
  385.            1MB, 2: anywhere in 64bit address space.
  386.        3  (R) Pre-fetchable. Set if memory is cacheable, clear if not.
  387.     4-19  (R) Address space size. 0: >= 1MB
  388.    20-22  (PCI) (R) Address block size. Always 0
  389.    20-22  (VL,ISA) Address block size. Bits 20-22 of the Base address
  390.    23-31  Base Address. Upper 9 bits of the base address.
  391.  
  392. 2x??h D(R/W):  Extended I/O Base Address
  393. bit    0  (R) Memory or I/O. 0: Memory mapped, 1: I/O mapped
  394.        3  (R) Pre-fetchable. Set if memory is cacheable, clear if not.
  395.      4-7  (R) Address space size. 0: 256bytes
  396.     8-31  Base Address. Upper 24 bits of the base address.
  397.  
  398. 2x30h (R/W):  BIOS ROM Base Address
  399. bit    0  (R/W) BIOS ROM Decode enabled if set
  400.    11-14  (R) ROM BIOS Min Size. If clear ROM BIOS is min. 32K
  401.    15-17  ROM BIOS size. Bits 15-17 of the base address. Depending on the size
  402.           of the ROM (see Configuration Register 2 - 3DEh index 8 bits 3-4)
  403.           some of these bits may be Read only and 0.
  404.              3DEh index 8 bits 3-4:     Bit15    Bit16    Bit17    ROM Size:
  405.                            0             R/W      R/W      R/W        32K
  406.                            1             R/W      R/W      R(0)       64K
  407.                            2             R/W      R(0)     R(0)      128K
  408.                            3             R(0)     R(0)     R(0)      256K
  409.    18-31  ROM BIOS Address. Upper 14 bits of the base address.
  410.  
  411. 2x3Ch (R/W):  Interrupt Line
  412. 2x??h (R):  Interrupt Pin
  413. 2x??h (R):  Minimum Grant
  414. 2x??h (R):  Maximum Latency
  415.  
  416.  
  417.  
  418. M+10h (R/W):  Co-Processor Status
  419. bit 0-1  (R) Map that needs data next. 0: Pattern, 1: Mask, 2: Source, 3: Dest
  420.       2  If set the map writing, if clear reading
  421.       3  (R) Map Status Valid
  422.       4  If set increase address for next access, if clear reset to map start
  423.       5  If set advance to next line, if clear stay on current line
  424.       7  (R) Co-Processor busy if set
  425.  
  426. M+11h (R/W):  Co-Processor Control
  427. bit   0  Select CINT interrupt source. VGA interrupt or Co-Processor interrupt
  428.       1  Enable Master Mode. 0: CPU assisted, 1: Bus Master
  429.       4  Interrupt Status. Interrupt pending if set. Write 0 to clear
  430.       5  Terminate Co-Processor operation if set
  431.       6  Enable Turbo Co-Processor data path. If set removes extra datapath
  432.          delay (1 clock).
  433.  
  434. M+12h (R/W):  Pixel Map Select
  435. M+14h D(R/W):  Pixel Map n Base
  436. M+18h W(R/W):  Pixel Map n Width
  437. M+1Ah W(R/W):  Pixel Map n Height
  438. M+1Ch (R/W):  Pixel Map n Format
  439. bit 0-2  Bits per pixel. 0: 1bpp, 3: 8bpp, 4: 16bpp, 5: 32bpp
  440.       3  Set for Motorola format, clear for Intel format
  441.       7  Set if the map is in system memory, clear if in video memory
  442.  
  443. M+20h W(R/W):  Bresenham Error Term
  444. M+24h W(R/W):  Bresenham K1
  445. M+28h W(R/W):  Bresenham K2
  446. M+2Ch D(R/W):  Direction Steps
  447. M+48h (R/W):  ROP
  448. M+4Ah (R/W):  Destination Color Compare Condition
  449. bit 0-2  Condition.
  450.            0:  Always true (disable update)
  451.            2:  Dest == color
  452.            4:  Dest != color
  453.            6:  Always false (enable update)
  454.  
  455. M+4Ch D(R/W):  Destination Color Compare Value
  456. M+50h D(R/W):  Pixel Bit Mask
  457. M+58h D(R/W):  Foreground Color
  458. M+5Ch D(R/W):  Background Color
  459. M+60h W(R/W):  Operation Dimension 1
  460. M+62h W(R/W):  Operation Dimension 2
  461. M+6Ch W(R/W):  Mask Map Origin X Offset
  462. M+6Eh W(R/W):  Mask Map Origin Y Offset
  463. M+70h W(R/W):  Source X Pointer
  464. M+72h W(R/W):  Source Y Pointer
  465. M+74h W(R/W):  Pattern X Pointer
  466. M+76h W(R/W):  Pattern Y Pointer
  467. M+78h W(R/W):  Destination X Pointer
  468. M+7Ah W(R/W):  Destination Y Pointer
  469. M+7Ch D(R/W):  Pixel Operations Register
  470. bit  0-2  Direction
  471.      4-5  Drawing Mode
  472.      6-7  Mask Pixel Map
  473.    12-15  Pattern Pixel Map
  474.    16-19  Destination Pixel Map
  475.    20-23  Source Pixel Map
  476.    24-27  Co-Processor Function Control
  477.    28-29  Foreground Source
  478.    30-31  Background Source
  479.  
  480.  
  481. Note: the co-processor is clearly modeled on the IBM XGA.
  482.  
  483.   ID Oak VGA:
  484.  
  485.   if testinx2($3DE,$D,$38) then
  486.   begin
  487.     { We have an OAK }
  488.     if testreg2($3DE,$23,$1F) then
  489.       if (rdinx($3DE,0) and 2)=0 then _OAK_087
  490.                                  else _OAK_083
  491.     else
  492.       case inp($3DE) div 32 of
  493.         0:_OAK_037C
  494.         2:_OAK_067
  495.         5:_OAK_077
  496.         7:_OAK_057
  497.       end;
  498.   end;
  499.  
  500.  
  501.   Modes:
  502.  
  503.   (OTI 067/077/087)
  504.  
  505.   4Eh  T    80   60  16  (8x8)      Not all 067's
  506.   4Fh  T   132   60  16  (8x8)
  507.   50h  T   132   25  16  (8x14)
  508.   51h  T   132   43  16  (8x8)
  509.   52h  G   800  600  16  PL4
  510.   53h  G   640  480 256  P8
  511.   54h  G   800  600 256  P8
  512.   55h  G  1024  768   4  PL1/2?
  513.   56h  G  1024  768  16  PL4
  514.   57h  G   768 1024   4  ??
  515.   58h  G  1280 1024  16  PL4
  516.   59h  G  1024  768 256  P8     OTI-077/87 only
  517.   5Ah  G   640  480 64k  P16    OTI-077 w/Sierra
  518.   5Bh  G   640  400 32k  P15    OTI-077 w/Sierra
  519.   5Ch  G   640  480 32k  P15    OTI-077 w/Sierra
  520.   5Dh  G   800  600 32k  P15
  521.   5Eh  G  1280 1024 256  P8
  522.   5Fh  G   640  480 16m  P24
  523.   60h  G   800  600 64k  P16
  524.   61h  G   640  400 256  P8
  525.  
  526. Note that the OAK-087 BIOS version 1.01B does not set the DAC mode of the
  527. HiColor modes correctly.
  528.  
  529.  
  530.   (OTI037C "UNIQUE" VGA)
  531.  
  532.   50h  T   132   25  16  (8x14)
  533.   51h  T   132   43  16  (8x8)
  534.   52h  G   800  600  16  PL4
  535.  
  536.  
  537.   (OTI037C with NEL Electronics BIOS)
  538.  
  539.   50h  G   640  480  16  PL4
  540.   51h  T    80   30      (16x9)
  541.   52h  G  1024  480  16  PL4
  542.   53h  T    80   25      (16x8)
  543.   54h  T   132   43      (8x8)
  544.   55h  T   132   25      (14x8)
  545.   56h  T   132   43      (8x9)
  546.   57h  T   132   25      (14x9)
  547.   58h  T    80   43      (8x8)
  548.   59h  T    80   43      (8x9)
  549.   5Ah  T    80   60      (8x8)
  550.   5Bh  G   800  600  16  PL4
  551.   5Ch  T   100   37      (16x8)
  552.   5Dh  T   100   75      (8x8)
  553.   5Eh  G   800  600  16  PL4
  554.   6Ah  G   800  600  16  PL4
  555.   6Bh  T   100   37      (16x8)
  556.  
  557. ----------10FF-----------------------------------
  558. INT 10 - VIDEO - OAK VGA BIOS v1.02+ - SET EMULATION
  559.         AH = FFh
  560.         AL = Emulation
  561.                43h  CGA emulation
  562.                45h  EGA emulation
  563.                4Dh  Hercules emulation
  564.                56h  VGA emulation
  565.         ES:DI -> signature string "Calamity"
  566. Switches to the desired emulation
  567.